

n = 539716146657873683953980337167442370205607396016762099860696836554304479127682990635558509291990975010710259774105190750345803082745321844446471676261605709918661363645086490475727759637314948599272168217009904842246779072522926155138067684808360353427394104838269789355928431417667323805846012178100376617661315013988276477652975145645033364947035116515684485778435368557145241930352617576719067103215806407786988267311516509593131744445482263117902295062766963
d = 44678553033321199721940364669941000795308457114093877311947154137437389444035742411455393647782718273141631735567869399578806338048308488121147309965373129928440985106413614930419323698585242976998901750071368878194118469159578846888047222538179404071906649578649495929239168707685018410549271760849018199387
c = 251016458288080474773547632379721620412577563641987800834123372125499751806853561568388817870348725246126232415960900556250463434145350358113383621484162783894986692379729619196073173312987161010718183570363425059496758553489527300005877782385030664975686083991377056184168159542936808489065095724605467144069309729117687163885843316576944946447441679248414145286080581339399181086247447719721375770667539567873050310190445488985869573616117623616688190902090512

import libnum

#pq=gcd(2^dn-2,n)
pq=libnum.gcd(pow(2,d*n,n)-2,n)
print(pq)
m=pow(c,d,pq)
print(libnum.n2s(m))